 $(document).ready(function(){   
            flushLoginTicket();  // 进入登录页，则获取login ticket，该函数在下面定义。  
        });
      
        // 登录验证函数, 由 onsubmit 事件触发  
        var loginValidate = function(){
            var msg;  
            if ($.trim($('#J_Username').val()).length == 0 ){  
                msg = "用户名不能为空。";  
            } else if ($.trim($('#J_Password').val()).length == 0 ){  
                msg = "密码不能为空。";  
            }  
            if (msg && msg.length > 0) {  
                $('#J_ErrorMsg').fadeOut().text(msg).fadeIn();  
                return false;  
                // Can't request the login ticket.  
            } else if ($('#J_LoginTicket').val().length == 0){  
                $('#J_ErrorMsg').text('服务器正忙，请稍后再试..');  
                return false;  
            } else {  
                // 验证成功后，动态创建用于提交登录的 iframe  
                $('body').append($('<iframe/>').attr({  
                    style: "display:none;width:0;height:0",   
                    id: "ssoLoginFrame",  
                    name: "ssoLoginFrame",  
                    src: "javascript:false;"  
                }));  
                return true;  
            }  
        };  
          
        // 登录处理回调函数，将由 iframe 中的页同自动回调  
        var feedBackUrlCallBack = function (result) {
            customLoginCallBack(result);  
            deleteIFrame('#ssoLoginFrame');// 删除用完的iframe,但是一定不要在回调前删除，Firefox可能有问题的  
        };  
          
        // 自定义登录回调逻辑  
        var customLoginCallBack = function(result){  
            // 登录失败，显示错误信息  
            if (result.login == 'false'){  
                $('#J_ErrorMsg').fadeOut().text(result.msg).fadeIn();  
                // 重新刷新 login ticket  
                flushLoginTicket();  
            }else{  
                //该处定义登录成功后需要执行的操作,比如刷新DIV等  
                //......  
                alert("登陆成功");  
            }  
        };  
      
        var deleteIFrame = function (iframeName) {  
            var iframe = $(iframeName);   
            if (iframe) { // 删除用完的iframe，避免页面刷新或前进、后退时，重复执行该iframe的请求  
                iframe.remove();
            }  
        };  
      
        // 由于一个 login ticket 只允许使用一次, 当每次登录需要调用该函数刷新 lt  
        var flushLoginTicket = function(){  
            var _services = 'service=' + encodeURIComponent(redirectUrl);
            var casUrl = 'http://www.jdcas.com:8080/cas/login?'+_services+'&get-lt=true&n=' + new Date().getTime();
	        $.ajax({
		     type: "get",
		     async: true,
		     timeout: 50000,
		     url: casUrl,
		     dataType: "jsonp",
		     //data:dataObj,
		     jsonp: "callback",//传递给请求处理程序或页面的，用以获得jsonp回调函数名的参数名(一般默认为:callback)
		     jsonpCallback:"showResult",//自定义的jsonp回调函数名称，默认为jQuery自动生成的随机函数名，也可以写"?"，jQuery会自动为你处理数据
		     error: function(xmlObj, errorMsg, exceptionObj){
		    	 alert("服务器连接失败，请检查网络连接和系统配置。");
		     }
		 });
       };
        
        function showResult(data){
        	var dataArr = data.split('&');
                   $('#J_LoginTicket').val(dataArr[0]);  
                   $("#J_Execution").val(dataArr[1]);
        }

        var basePath="http://www.jdcas.com:8080/cas/";
        function changecode(obj, captchaMsgId){
        	$(obj).attr("src", basePath + "captcha.htm?.tmp="+Math.random());
        	emptyCaptchaMessage(captchaMsgId);
        }

        function emptyCaptchaMessage(captchaMsgId){
        	if($("#" + captchaMsgId).attr("src") != ""){
        		$("#" + captchaMsgId).attr("src", basePath + "newimages/captcha_message_fail.gif");
        	}
        }

        function captchaInputChange(obj, captchaMsgId){
        	var value=$(obj).val();
        	var result = false;
        	if(value.length==4){
        		if((/[\u4e00-\u9fa5]+/).test(value)) {
        			value = encodeURI(encodeURI(value));
        		} 
        		$.ajaxSetup({   
                    async : false  ,
                    crossDomain: true
                }); 
        		
        		$.post(basePath + 'ajaxHandler', 
        				{method:'captchaCheck',params:'{code:"' + value + '"}'}, 
        				function(responseText, textStatus,XMLHttpRequest) {
        						$("#" + captchaMsgId).css('display','');
        		  			   	if(responseText.status=="success"){
        		  			   		$("#" + captchaMsgId).attr("src", basePath + "newimages/captcha_message_succ.gif");
        		  			   		result = true;
        		  			   	}else{
        		  			   		$("#" + captchaMsgId).attr("src",basePath + "newimages/captcha_message_fail.gif");
        			  			   	changecode(obj, captchaMsgId);
        		  			   	}
        					}, "json");
        	}else{
        		$("#" + captchaMsgId).css('display','none');
        	}
        	return result;
        }